The present disclosure relates to a database storage architecture.
FIG. 1 illustrates row-store and column-store representations of a database table. A logical database design usually comprises one or more conceptual tables such as FIG. 1's table 120. A table is characterized by a set of attributes, usually depicted as column headings, for which each record in the table has respective (albeit potentially empty) values. In table 120, for instance, the attributes are Emp# (employee number), Dept (department), Room, Phone, and Age. In row-store arrangements values of a given record's successive attributes are typically stored physically adjacent to one another, as FIG. 1's depiction of row-store 122 suggests. In a column-store, as column-store 124 depicts, successive storage locations are occupied by different records' values of the same attribute.
A physical database design choice for both row-stores and column-stores can be the order in which rows or columns are stored. For example, FIG. 1's table 120 may be ordered in a row-store on attribute Room, in which case the first row in the table (Room=101) would be followed by the third row (Room=105) followed by the second row (Room=203). The choice of sort order can influence both query and update performance. For example, if table 120 is physically sorted on Room, then queries that include predicates on Room can be evaluated typically without scanning the entire table.